Показано с 1 по 2 из 2

Тема: [MZ] Phileas_PlayerMovementInversion

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    633
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию [MZ] Phileas_PlayerMovementInversion

    Название плагина: Phileas_PlayerMovementInversion

    Автор: Phileas

    Версия: 1.1.1 для MZ

    Дата выхода:
    1.0.0 - 11.08.2023
    1.1.0 - 12.08.2023
    1.1.1 - 13.08.2023

    Описание плагина:
    Плагин предоставляет единственную команду - switchInversion.
    С помощью неё вы можете включить и выключить горизонтальную и вертикальную инверсии.

    Как это выглядит:


    Код:
    Спойлер Версия 1.1.1:
    Код:
    //=============================================================================
    // Phileas_PlayerMovementInversion.js
    //=============================================================================
    // [Update History]
    // 2023.August.11 Ver1.0.0 First Release
    // 2023.August.12 Ver1.1.0 Added save state parameter
    // 2023.August.13 Ver1.1.1 The inversion state is reset when a new game starts
    
    /*:
     * @target MZ
     * @plugindesc Inverts the player's movement control
     * @author Phileas
     *
     * @param saveState
     * @text Save state
     * @type boolean
     * @default true
     * @desc If true, the inversion state will be restored when the save is loaded.
     *
     * @command switchInversion
     * @text Switch the inversion
     * @desc Enables or disables movement inversion.
     *
     * @arg horizontalInversion
     * @text Horizontal inversion
     * @type boolean
     * @desc If this is on, the movement will be inverted horizontally.
     * @default false
     *
     * @arg verticalInversion
     * @text Vertical inversion
     * @type boolean
     * @desc If this is on, the movement will be inverted vertically.
     * @default false
     * 
     * @help
     * The plugin provides a single command - switchInversion.
     * You can use it to enable and disable horizontal and vertical inversions.
     *
     * [License]
     * This plugin is released under MIT license.
     * http://opensource.org/licenses/mit-license.php
     *
     * This means that you can freely use the plugin in non-commercial and commercial games and even edit it.
     * But be sure to include me in the credits!
     */
     
    /*:ru
     * @target MZ
     * @plugindesc Инверсирует управление движением игрока
     * @author Phileas
     *
     * @param saveState
     * @text Сохранять состояние
     * @type boolean
     * @default true
     * @desc Если true, состояние инверсии будет восстаналиваться при загрузке сохранения.
     *
     * @command switchInversion
     * @text Switch the inversion
     * @desc Enables or disables movement inversion.
     *
     * @arg horizontalInversion
     * @text Horizontal inversion
     * @type boolean
     * @desc Если этот параметр включён, перемещение будет перевёрнуто по горизонтали.
     * @default false
     *
     * @arg verticalInversion
     * @text Vertical inversion
     * @type boolean
     * @desc Если этот параметр включен, перемещение будет перевернуто по вертикали.
     * @default false
     * 
     * @help
     * Плагин предоставляет единственную команду - switchInversion.
     * С помощью неё вы можете включить и выключить горизонтальную и вертикальную инверсии.
     *
     * [License]
     * Этот плагин распространяется по лицензии MIT.
     * http://opensource.org/licenses/mit-license.php
     *
     * Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
     * Но обязательно укажите меня в титрах!
     */
    
    (function() {
    
    //--------MY CODE:
        var parameters = PluginManager.parameters("Phileas_PlayerMovementInversion");
        var saveState = parameters["saveState"] == "true";
        var horizontalInversion = false;
        var verticalInversion = false;
        
        PluginManager.registerCommand("Phileas_PlayerMovementInversion", "switchInversion", switchInversion);
    
        function switchInversion(params) {
            horizontalInversion = params["horizontalInversion"] == "true";
            verticalInversion = params["verticalInversion"] == "true";
        }
    
    //--------CHANGED CORE:
    
        const Origin_move = Game_Player.prototype.moveByInput;
        Game_Player.prototype.moveByInput = function() {
            if (horizontalInversion) {
                if (Input._dir4 == 4) {
                    Input._dir4 = 6;
                }
                else if (Input._dir4 == 6) {
                    Input._dir4 = 4;
                }
            }
            
            if (verticalInversion) {
                if (Input._dir4 == 8) {
                    Input._dir4 = 2;
                }
                else if (Input._dir4 == 2) {
                    Input._dir4 = 8;
                }
            }
    
            Origin_move.call(this);
        };
        
        const Origin_makeSaveContents = DataManager.makeSaveContents;
        DataManager.makeSaveContents = function() {
            let contents = Origin_makeSaveContents.call(this);
            if (saveState) {
                contents.phileasHorizontalInversion = horizontalInversion;
                contents.phileasVerticalInversion = verticalInversion;
            }
            
            return contents;
        };
        
        const Origin_extractSaveContents = DataManager.extractSaveContents;
        DataManager.extractSaveContents = function(contents) {
            Origin_extractSaveContents.call(this, contents);
            if (saveState) {
                horizontalInversion = contents.phileasHorizontalInversion || false;
                verticalInversion = contents.phileasVerticalInversion || false;
            }
        };
        
        const Origin_setupNewGame = DataManager.setupNewGame;
        DataManager.setupNewGame = function() {
            Origin_setupNewGame.call(this);
            horizontalInversion = false;
            verticalInversion = false;
        };
    }());

    Или можно скачать файл тут.

    Лицензия
    Этот плагин распространяется по лицензии MIT.
    Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
    Но обязательно укажите меня в титрах!

    Совместимость:
    Пишите мне, если возникнут проблемы.
    Последний раз редактировалось Phileas; 13.08.2023 в 16:13.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[MZ] Phileas_PlayerMovementInversion